unit VendaDM;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ZDataset, ZSqlUpdate, ZSequence, MainDM, DB, QueryConditions;

type

  { TVendaData }

  TVendaData = class(TMainDataModule)
    VendaCaixaDatasource: TDatasource;
    VendaCaixaZQuerydesconto: TFloatField;
    VendaCaixaZQueryid_caixa: TLargeintField;
    VendaCaixaZQueryid_venda: TLargeintField;
    VendaCaixaZQuerysigla_forma_pagamento: TStringField;
    VendaCaixaZQuerytipo_cartao: TStringField;
    VendaCaixaZQueryvalor: TFloatField;
    VendaItensDatasource: TDatasource;
    VendaDatasource: TDatasource;
    VendaItensZQuerycodigo_barra: TStringField;
    VendaItensZQuerydesc_produto: TStringField;
    VendaItensZQueryid_itens_venda: TLargeintField;
    VendaItensZQueryid_produto: TLargeintField;
    VendaItensZQueryid_venda: TLargeintField;
    VendaItensZQueryquantidade: TFloatField;
    VendaItensZQueryvalor: TFloatField;
    VendaZQuerydata_hora: TDateTimeField;
    VendaZQuerydesconto: TFloatField;
    VendaZQuerydesc_condicao_pagamento: TStringField;
    VendaZQueryid_cliente: TLargeintField;
    VendaZQueryid_condicao_pagamento: TLargeintField;
    VendaZQueryid_venda: TLargeintField;
    VendaZQuerylimite_credito: TFloatField;
    VendaZQuerynome_pessoa: TStringField;
    VendaZQuerysigla_forma_pagamento: TStringField;
    VendaZQuerystatus_cliente: TStringField;
    VendaZQueryvalor: TFloatField;
    VendaZQueryvalor_total: TFloatField;
    VendaZUpdate: TZUpdateSQL;
    VendaItensZQuery: TZQuery;
    VendaItensZSequence: TZSequence;
    VendaItensZUpdate: TZUpdateSQL;
    VendaCaixaZQuery: TZQuery;
    VendaCaixaZUpdate: TZUpdateSQL;
    VendaZQuery: TZQuery;
    AuxiliarZQuery: TZQuery;
    procedure DataModuleCreate(Sender: TObject);
    /// Abre o DataSet
    procedure OpenDataSet(); override;
    /// Fecha o DataSet
    procedure CloseDataSet(); override;
    /// Realiza busca
    /// @param(Condicoes são as condições para a busca)
    /// @param(Tabela é a tabela no banco de dados)
    procedure Search(Condicoes: TQueryConditions; Tabela: string); override;

  private
    { private declarations }
  public
    { public declarations }
  end;

var
  VendaData: TVendaData;

implementation

uses ConnectionDM, CondicaoPagamentoDM, DuplicataReceberDM;

{ TVendaData }

procedure TVendaData.DataModuleCreate(Sender: TObject);
begin
  MainDataSet := VendaZQuery;
  VendaItensZQuery.Open();
end;

procedure TVendaData.OpenDataSet;
begin
  ConnectionData.EmptyQuery(VendaZQuery, 'venda');
end;

procedure TVendaData.CloseDataSet;
begin
  VendaZQuery.Close();
  VendaItensZQuery.Close();
end;

procedure TVendaData.Search(Condicoes: TQueryConditions; Tabela: string);
begin
  ConnectionData.OpenQueryConditions(VendaZQuery, Tabela, Condicoes);
end;




initialization
  {$I vendadm.lrs}

end.
